iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 23
1

一般設置 Shell Script 常用在系統管理、自動化操作檔案、簡化指令寫法等,透過程式語言來減少瑣碎且麻煩的工作。改善操作系統的工作效率,絕對是雙手贊成使用!

簡單說好了,Shell Script 就是將 shell(bash)指令給寫進一個 Script(腳本),並搭配判斷、迴圈等使用,就稱之為 文件腳本。

echo

echo 是一個印出的指令。

[root@localhost ~]# echo demo
demo

// 或

[root@localhost ~]# echo 'demo'
demo

參數
-n 不要在最後自動換行
-e 出現特殊字元,特別加以處理。

特殊字元

特殊字元 說明
\a 發出警告聲
\b 刪除前一個字符
\c 最後不加上換行符號
\f 換行但游標停在原來的位置
\n 換行字串
\t 插入tab 水平定位點
\v 插入垂直定位點

字串內有\n 加上-e 做特別處理。

[root@localhost ~]# echo "demo1\ndemo2\ndemo3"
demo1\ndemo2\ndemo3

[root@localhost ~]# echo -e "demo1\ndemo2\ndemo3"
demo1
demo2
demo3

變數

變數是用來儲存「值」,像一個抽屜,可以存放各種值。變數分成兩種:

  • 環境變數
  • 自訂變數

環境變數

bash 提供了以下幾種變數,他們特點都是以大寫命名

  • $HOME 使用者的家目錄
  • $PATH 分號分隔的一連串目錄,執行指令時的搜尋目錄。
  • $LANG 儲存使用者的語系

自訂變數

設定一個變數名稱,以等於符號=指定要的值,可以是字串或數值。

變數名稱 = 指定的值

設置名稱為 msg 的變數,變數值為「信件發送成功」。

[root@localhost ~]# msg="信件發送成功"
[root@localhost ~]# echo $msg

信件發送成功

read 指令可以讀取變數,會停在指令下,可以自行輸入變數值。

[root@localhost ~]# read msgerror
信件發送錯誤

[root@localhost ~]# echo $msgerror
信件發送錯誤

比較運算式

bash 提供了一個指令 test 可用來測試多種情況的狀態。

檔案測試

結果

  • 1 等於 false
  • 0 等於 true

測試 edm.php 是否為目錄?

[root@localhost ~]# ls -l edm.php
-rw-r--r--. 1 root root 0  9月 22 21:43 edm.php

[root@localhost ~]# test -d edm.php
[root@localhost ~]# echo $?
1

變數測試

測試變數長度是否大於1。

[root@localhost ~]# ex="我是Sian"

[root@localhost ~]# test -n ex
[root@localhost ~]# echo $?
0

數字比對

測試變數是否相等。

[root@localhost ~]# y=5
[root@localhost ~]# x=7

[root@localhost ~]# test $y -eq $x
[root@localhost ~]# echo $?
1

上一篇
Day 22 Shell
下一篇
Day 24 Sell Script(2)
系列文
如何使用 Linux 從土裡到冒出頭來30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言